#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <sys/wait.h>



/**
 * 作业： 
 * 手写shell终端
 *   fork+ execlp + waitpid  配套使用 
 */

#define SIZE 1024
int main(void)
{
    char buf[SIZE];
    pid_t pid;
    bzero(buf, SIZE);
    printf("%% ");
    while (fgets(buf, SIZE, stdin) != NULL) {
        // printf("your input command : %s", buf);
        if ((pid = fork()) < 0) {
            perror("fork");
            exit(1);
        } else if (pid == 0) {
            //子进程执行代码入口
            if(buf[strlen(buf)-1]=='\n') //把换行符去掉	
                buf[strlen(buf)-1]='\0'	;

            execlp(buf, buf, NULL);
            printf("%s: command not found\n", buf);
            exit(2);
        } 
        // sleep(1);
        waitpid(pid, NULL, 0);
        //父进程代码
        printf("%% ");
    }
    printf("bye!\n");


    return 0;
}